// 对于axios进行二次封装
import axios from 'axios';
import nprogress from 'nprogress';
import 'nprogress/nprogress.css';
// nprogress start方法进度条开始,done进度条结束
const mockRequests = axios.create({
  // 基础路径
  baseURL: '/mock',
  timeout: 5000,
});

// 请求拦截器:在发请求之前请求拦截器可以检测到,可以在请求发出去之前做一些事情
mockRequests.interceptors.request.use((config) => {
  // config:配置对象,对象里卖弄有一个属性,请求头headers
  nprogress.start();
  return config;
});

// 响应拦截器:在数据返回之后拦截
mockRequests.interceptors.response.use(
  (res) => {
    nprogress.done();
    return res.data;
  },
  (error) => {
    return Promise.reject(new Error('failed'));
  }
);

export default mockRequests;
